package com.promise.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@MapperScan("com.promise.dao")
public class MyBatisPlusConfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor mpi = new MybatisPlusInterceptor();
        // 添加分页拦截器
        mpi.addInnerInterceptor(new PaginationInnerInterceptor()); //用于实现分页功能，可以自动拦截 SQL，根据传入的分页参数自动生成分页 SQL。
        // 添加乐观锁拦截器
        mpi.addInnerInterceptor(new OptimisticLockerInnerInterceptor()); //用于实现乐观锁功能，通过在更新操作时对比版本号（或其他乐观锁字段）来实现并发控制，避免数据更新冲突。
        return mpi;
    }
}
